【剑指Offer I】54. 二叉搜索树的第k大节点
题目
给定一棵二叉搜索树,请找出其中第 k
大的节点的值。
输入: root = [3,1,4,null,2], k = 1
3
/ \
1 4
\
2
输出: 4
解答
思路
同上,中序遍历可以获得二叉搜索树的递增序列,但这里要求第 k
大的节点值,如果不求总节点的个数,在递增序列中没法找第 K
大。
所以需要对中序遍历进行修改,改成 右根左 的遍历顺序,这样得到的遍历结果就是递减序列。
代码
1 | class Solution { |
复杂度
- 时间复杂度
O(N)
:访问树的所有节点。 - 空间复杂度
O(N)
:系统栈空间。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 namespace LANG!
评论